package com.sojson.project.monitor.server.entity.bo;

import com.sojson.base.impl.Base;
import com.sojson.util.ArithUtil;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * CPU相关信息
 * 
 * @author liu
 * @date 2021-11-10
 */
@ApiModel("CPU相关信息")
public class Cpu extends Base {

    /**  */
    private static final long serialVersionUID = 1L;
    @ApiModelProperty("核心数")
    private int cpuNum;
    @ApiModelProperty("CPU总的使用率")
    private double total;
    @ApiModelProperty("CPU系统使用率")
    private double sys;
    @ApiModelProperty("CPU用户使用率")
    private double used;
    @ApiModelProperty("CPU当前等待率")
    private double wait;
    @ApiModelProperty("CPU当前空闲率")
    private double free;

    /** 获取 核心数 */
    public int getCpuNum() {
        return cpuNum;
    }

    /** 设置 核心数 */
    public void setCpuNum(int cpuNum) {
        this.cpuNum = cpuNum;
    }

    /** 获取 CPU总的使用率 */
    public double getTotal() {
        return ArithUtil.round(ArithUtil.mul(total, 100), 2);
    }

    /** 设置 CPU总的使用率 */
    public void setTotal(double total) {
        this.total = total;
    }

    /** 获取 CPU系统使用率 */
    public double getSys() {
        return ArithUtil.round(ArithUtil.mul(sys / total, 100), 2);
    }

    /** 设置 CPU系统使用率 */
    public void setSys(double sys) {
        this.sys = sys;
    }

    /** 获取 CPU用户使用率 */
    public double getUsed() {
        return ArithUtil.round(ArithUtil.mul(used / total, 100), 2);
    }

    /** 设置 CPU用户使用率 */
    public void setUsed(double used) {
        this.used = used;
    }

    /** 获取 CPU当前等待率 */
    public double getWait() {
        return ArithUtil.round(ArithUtil.mul(wait / total, 100), 2);
    }

    /** 设置 CPU当前等待率 */
    public void setWait(double wait) {
        this.wait = wait;
    }

    /** 获取 CPU当前空闲率 */
    public double getFree() {
        return ArithUtil.round(ArithUtil.mul(free / total, 100), 2);
    }

    /** 设置 CPU当前空闲率 */
    public void setFree(double free) {
        this.free = free;
    }

}